﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;
namespace GUI
{
    public partial class FormQuanLyThucDon : Form
    {
        public FormQuanLyThucDon()
        {
            InitializeComponent();
        }
        private void LayDSLoaiMonFull()
        {
            

            LOAIMONBUS lmBUS = new LOAIMONBUS();

            List<LOAIMONDTO> ds = new List<LOAIMONDTO>();
            ds = lmBUS.LayDSLoaiMonFull();
            dtgDanhSachLM.Rows.Clear();
            for (int i = 0; i < ds.Count; i++)
            {
                dtgDanhSachLM.Rows.Add(ds[i].TenLoai, ds[i].SoLuong);
            }
        }

        private void loadLencboLoaiMon()
        {
            //load leen combobox loai mon
            LOAIMONBUS lmBUS = new LOAIMONBUS();
            List<LOAIMONDTO> ds1 = new List<LOAIMONDTO>();
            ds1 = lmBUS.LayDSLoaiMon();
            cboLoaiMon.DataSource = ds1;
            cboLoaiMon.DisplayMember = "TenLoai";
            cboLoaiMon.ValueMember = "MaLoai";
        }
        private void loadLencboDVT()
        {
            ///load len combobox DVT
            THUCDONBUS tdBUS = new THUCDONBUS();
            List<THUCDONDTO> ds = new List<THUCDONDTO>();
            ds = tdBUS.LayDSDVT();
            cboDVT.DataSource = ds;
            cboDVT.DisplayMember = "DVT";
            cboDVT.ValueMember = "DVT";
        }
        private void LayDSThucDon()
        {
            THUCDONBUS tdBUS = new THUCDONBUS();
            DataTable ds = new DataTable();
            ds = tdBUS.LayDSThucDon();
            dtgDanhSachMon.DataSource = null;
            dtgDanhSachMon.DataSource = ds;
        }
        private void LoadDuLieu()
        {
            LayDSLoaiMonFull();

            loadLencboLoaiMon();

            loadLencboDVT();

            LayDSThucDon();
        }
        private void FormQuanLyThucDon_Load(object sender, EventArgs e)
        {
            LoadDuLieu();
            LayDLTuGrid();

        }

        private void dtgDanhSachLM_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            txtTenLoai.Text = dtgDanhSachLM.CurrentRow.Cells[0].Value.ToString();
        }

        private void btnThemTang_Click(object sender, EventArgs e)
        {
            LOAIMONDTO lmDTO = new LOAIMONDTO();
            string tl = txtTenLoai.Text.Trim();

            string l = cboLoai.Text;
            if (tl.Length > 50)
            {
                MessageBox.Show("tên loại món bạn nhập quá dài (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (tl == "")
            {
                MessageBox.Show("bạn phải nhập tên loại món", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (l == "")
            {
                MessageBox.Show("bạn phải chon loai", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            bool loai;
            if (l == "1")
            {
                loai = true;
            }
            else
            {
                loai = false;
            }
            lmDTO.TenLoai = tl;
            lmDTO.Loai = loai;
            LOAIMONBUS lmBUS = new LOAIMONBUS();
            int kq = lmBUS.ThemLoaiMon(lmDTO);
            if (kq > 0)
            {
                MessageBox.Show("Thêm thành công");
                LoadDuLieu();
                LoaiMonMoi();
            }
            else
            {
                MessageBox.Show("Thêm thất bại");
            }
        }
        private void LoaiMonMoi()
        {
            txtTenLoai.Clear();
            txtTenLoai.Focus();
        }

        private void btnTangMoi_Click(object sender, EventArgs e)
        {
            LoaiMonMoi();
        }

        private void btnTimTang_Click(object sender, EventArgs e)
        {
            LOAIMONDTO lmDTO = new LOAIMONDTO();
            string tl = txtTenLoai.Text.Trim();
            if (tl == "")
            {
                MessageBox.Show("bạn phải nhập tên loại món", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            lmDTO.TenLoai = tl;

            LOAIMONBUS lmBUS = new LOAIMONBUS();
            List<LOAIMONDTO> ds = new List<LOAIMONDTO>();
            ds = lmBUS.TimLoaiMon(lmDTO);
            dtgDanhSachLM.Rows.Clear();
            for (int i = 0; i < ds.Count; i++)
            {
                dtgDanhSachLM.Rows.Add(ds[i].TenLoai, ds[i].SoLuong);
            }
        }

        private void btnSuaTang_Click(object sender, EventArgs e)
        {
            try
            {
                LOAIMONDTO lmDTO = new LOAIMONDTO();
                string tl = txtTenLoai.Text.Trim();
                if (tl.Length > 50)
                {
                    MessageBox.Show("tên loại món bạn nhập quá dài (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                if (tl == "")
                {
                    MessageBox.Show("bạn phải nhập tên loại món mới", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                string l = cboLoai.Text;
                if (l == "")
                {
                    MessageBox.Show("bạn phải chon loai cua loai mon", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                bool loai = false;
                if (l == "1") {
                    loai = true;
                }
               

                string tlcu = dtgDanhSachLM.CurrentRow.Cells[0].Value.ToString();
                if (tlcu == "")
                {
                    MessageBox.Show("bạn phải chọn loại món muốn sửa ở bảng dưới hãy click chuột vào loại món cần sửa", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                lmDTO.TenLoai = tl;
                lmDTO.TenLoaiCu = tlcu;
                lmDTO.Loai = loai;
                LOAIMONBUS lmBUS = new LOAIMONBUS();
                int kq = lmBUS.SuaLoaiMon(lmDTO);
                if (kq > 0)
                {
                    MessageBox.Show("Sửa thành công");
                    LoadDuLieu();
                }
                else
                {
                    MessageBox.Show("Sửa thất bại");
                }
            }
            catch (Exception i)
            {
                MessageBox.Show("lỗi rồi", i.ToString());
            }
        }

        private void btnXoaTang_Click(object sender, EventArgs e)
        {
            LOAIMONDTO lmDTO = new LOAIMONDTO();
            string tl = txtTenLoai.Text.Trim();
            if (tl.Length > 50)
            {
                MessageBox.Show("tên loại món bạn nhập quá dài (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (tl == "")
            {
                MessageBox.Show("bạn phải nhập tên loại món", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            lmDTO.TenLoai = tl;

            LOAIMONBUS lmBUS = new LOAIMONBUS();
            int kq = lmBUS.XoaLoaiMon(lmDTO);
            if (kq > 0)
            {
                MessageBox.Show("Xóa thành công");
                LoadDuLieu();
            }
            else
            {
                MessageBox.Show("Xóa thất bại");
            }
        }

        private void MonMoi()
        {

            txtTenMon.Clear();
            txtDonGia.Clear();
            txtTenMon.Focus();
        }

        private void btnThemBan_Click(object sender, EventArgs e)
        {
            THUCDONDTO tdDTO = new THUCDONDTO();
            
            string ml = cboLoaiMon.SelectedValue.ToString();
            string tm = txtTenMon.Text.Trim();
            string dvt = cboDVT.Text.ToString();
            string dg = txtDonGia.Text.Trim();
            double kt;
            if (!(double.TryParse(dg, out kt)))
            {
                MessageBox.Show(" đơn giá bạn phải nhập bằng số ", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (dg.Length > 9)
            {
                MessageBox.Show("đơn giá nhập quá lớn", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (tm.Length > 50)
            {
                MessageBox.Show("tên món bạn nhập quá dai (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (ml == "" || tm == "" || dvt == "" || dg == "")
            {
                MessageBox.Show("bạn phải nhập đầy đủ thông tin");
                return;
            }
            tdDTO.MaLoai = int.Parse(ml);

            tdDTO.TenMon = tm;
            tdDTO.DVT = dvt;
            tdDTO.DonGia = double.Parse(dg);
            THUCDONBUS tdBUS = new THUCDONBUS();
            int kq = tdBUS.ThemMon(tdDTO);
            if (kq > 0)
            {
                MessageBox.Show("Thêm Thành Công");
                MonMoi();
                LoadDuLieu();
            }
            else
                MessageBox.Show("Thêm không thành công");
            return;
        }

        private void btnBanMoi_Click(object sender, EventArgs e)
        {
            MonMoi();
        }

        private void btnTimBan_Click(object sender, EventArgs e)
        {
            THUCDONDTO tdDTO = new THUCDONDTO();

          
            string tm = txtTenMon.Text.Trim();
            string dvt = cboDVT.SelectedValue.ToString();
           
            tdDTO.TenMon = tm;
            tdDTO.DVT = dvt;

            tdDTO.DonGia = double.Parse(txtDonGia.Text.Trim());

            THUCDONBUS tdBUS = new THUCDONBUS();

            DataTable ds = new DataTable();//
            ds = tdBUS.TimMon(tdDTO);
            dtgDanhSachMon.DataSource = null;
            dtgDanhSachMon.DataSource = ds;
        }

        private void btnSuaBan_Click(object sender, EventArgs e)
        {
            THUCDONDTO tdDTO = new THUCDONDTO();
            string tm = txtTenMon.Text.Trim();
            string dvt = cboDVT.Text.ToString();
            if (tm.Length > 50)
            {
                MessageBox.Show("tên món bạn nhập quá dai (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (tm == "" || dvt == "")
            {
                MessageBox.Show("bạn phải nhập đủ tên món và DVT", "Cảnh Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            string dg = txtDonGia.Text.Trim();
            double kt;
            if (!(double.TryParse(dg, out kt)))
            {
                MessageBox.Show(" đơn giá bạn phải nhập bằng số ", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (dg.Length > 9)
            {
                MessageBox.Show("đơn giá nhập quá lớn", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            tdDTO.TenMon = tm;
            tdDTO.DVT = dvt;
            tdDTO.MaLoai = int.Parse(cboLoaiMon.SelectedValue.ToString());
            tdDTO.DonGia = double.Parse(dg);
            tdDTO.TenMonCu = dtgDanhSachMon.CurrentRow.Cells[0].Value.ToString();
            tdDTO.DVTCu = dtgDanhSachMon.CurrentRow.Cells[1].Value.ToString();

            THUCDONBUS tdBUS = new THUCDONBUS();
            int kq = tdBUS.SuaMon(tdDTO);
            if (kq > 0)
            {
                MessageBox.Show("Sửa thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                LoadDuLieu();
            }
            else
            {
                MessageBox.Show("Sửa thất bại", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnXemHetThucDon_Click(object sender, EventArgs e)
        {
            LayDSThucDon();
        }

        private void btnXoaBan_Click(object sender, EventArgs e)
        {
            THUCDONDTO tdDTO = new THUCDONDTO();
            string tm = txtTenMon.Text.Trim();
            string dvt = cboDVT.SelectedValue.ToString();
            if (tm.Length > 50)
            {
                MessageBox.Show("tên món bạn nhập quá dai (< 50 kí tự)", "cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (tm == "" || dvt == "")
            {
                MessageBox.Show("bạn phải nhập đủ cả tên món và DVT (^_^) ok men");
                return;
            }
            tdDTO.TenMon = tm;
            tdDTO.DVT = dvt;
            THUCDONBUS tdBUS = new THUCDONBUS();
            int kq = tdBUS.XoaMon(tdDTO);
            if (kq > 0)
            {
                MessageBox.Show("xoa thành công");
                LayDSThucDon();
                LoadDuLieu();
            }
            else
                MessageBox.Show("bạn hãy xem DVT có đúng không", " xóa thất bại", MessageBoxButtons.OK, MessageBoxIcon.Error);

            return;
        }
        private void LayDLTuGrid()
        {
            txtTenMon.Text = dtgDanhSachMon.CurrentRow.Cells[0].Value.ToString();

           
            cboDVT.Text = dtgDanhSachMon.CurrentRow.Cells[1].Value.ToString();
            txtDonGia.Text = dtgDanhSachMon.CurrentRow.Cells[2].Value.ToString();
        }

        private void dtgDanhSachMon_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            LayDLTuGrid();
        }

        private void btnChiTietHoaDon_Click(object sender, EventArgs e)
        {
            THUCDONDTO tdDTO = new THUCDONDTO();
            string tm = txtTenMon.Text;
            string dvt = cboDVT.SelectedValue.ToString();
            if (tm == "")
            {
                MessageBox.Show("bạn chưa nhập tên món");
                return;
            }
            tdDTO.TenMon = tm;
            tdDTO.DVT = dvt;

            THUCDONBUS tdBUS = new THUCDONBUS();
            int kq = tdBUS.DoiTinhTrang(tdDTO);
            if (kq > 0)
            {
                MessageBox.Show("Đổi Thành công");
            }
            else
            {
                MessageBox.Show("Đổi thất bại ");
            }
        }

    }
}
